package LeetcodeTest_twenty_two;
//63.不同路径II

public class uniquePathsWithObstacles
{
    public static void main(String[] args)
    {
        int[][] num={{0,0,0},{0,1,0},{0,0,0}};
        System.out.println(solution.uniquePathsWithObstacles(num));
    }
}
class solution
{
    public static int uniquePathsWithObstacles(int[][] obstacleGrid)
    {
        int i,j;
        int m=obstacleGrid.length;
        int n=obstacleGrid[0].length;
        int dp[][]=new int[m][n];
        for(i=0;i<m;i++)
        {
            for(j=0;j<n;j++)
            {
                if(obstacleGrid[i][j]==0)
                {
                    if (i == 0 && j==0)
                        dp[i][j] = 1;
                    else if(i==0 && j>0)
                        dp[i][j] = dp[i][j-1];
                    else if(j==0 && i>0)
                        dp[i][j] = dp[i-1][j];
                    else
                        dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
                }
                else
                    dp[i][j]=0;
            }
        }
        return dp[m-1][n-1];
    }
}